
fn main() {
    //标量类型-整数类型
    //变量名+签名定义整数类型，_分隔符类似科学计数法
    let int1:i32 = 2_000;
    //变量值+签名定义整数类型
    let int2 = 3_000i32;
    println!("整数类型{},{}",int1,int2);
    // 整数类型2000,3000

    //浮点型
    //默认64位
    let float1 = 2.2;
    //可自定义为32位
    let float2: f32 = 3.3;
    println!("浮点类型{},{}",float1,float2);
    //浮点类型2.2,3.3

    //数字运算 同类型的数字类型可以进行加、减、乘、除、取余的算数。
    // addition
    let _sum: i32 = 5 + 10;
    // subtraction
    let _difference: f64 = 95.5 - 4.3;
    // multiplication
    let _product: i32 = 4 * 30;
    // division
    let _quotient: f64 = 56.7 / 32.2;
    // remainder
    let _remainder: i32 = 43 % 5;

    //布尔类型
    let _t: bool = true;
    let _f: bool = false;

    //字符类型（char），char文字是用单引号指定的，而不是使用双引号的字符串文字。
    let _z: char = 'z';
    let _w: char = '吴';

    //元组类型
    //元组是将一些具有各种类型的其他值组合成一种复合类型的一般方法。元组具有固定的长度：一旦声明，它们的大小不能增长或缩小。
    //定义
    let tup: (char, i32, i32, i32) = ('吴', 1991, 08, 16);
    let _yz: (char,u16,u8,u8) = ('秋',1991,08,16);
    //解构取值
    let (a,b,c,d) = tup;
    println!("解构取值为：{}，{}，{}，{}",a,b,c,d);
    //解构取值为：吴，1991，8，16

    //索引取值
    println!("索引取值为：{}，{}，{}，{}",_yz.0,_yz.1,_yz.2,_yz.3);

    //数组类型
    let _array: [i32; 3] = [2,3,4];
    //let a = [3, 3, 3, 3, 3];
    let _a: [i32; 5] = [3; 5];

    println!("数组取值：{}，{}",_array[0],_a[4]);

}
